<?php

namespace Lazzaroni\PartituraBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller {

    public function buscadorAction() {
        return $this->render('PartituraBundle:Default:buscador.html.twig');
    }

    public function buscarPartiturasAction() {
        $request = $this->getRequest();
        $busqueda = $request->get("busqueda");

        $em = $this->getDoctrine()->getManager();
        $metodo = $request->get("metodo");

        if ($metodo == "partitura") {
            $titulo = "%" . $busqueda . "%";
            $partituras = $em->getRepository('PartituraBundle:Partitura')->findAllByTituloObra($titulo);
        } else {
            $usuario = $em->getRepository('UsuarioBundle:Usuario')->findOneByUserName($busqueda);
            $partituras = $em->getRepository('PartituraBundle:Partitura')->findAllByUser($usuario);
            $usuario->addPartiturasPropias($partituras);
        }


        return $this->render('PartituraBundle:Default:TablaDePartituras.html.twig', array('partiturasBuscadas' => $partituras));
    }

    public function visualizarPartituraAction($id) {
        $em = $this->getDoctrine()->getManager();
        $partitura = $em->getRepository('PartituraBundle:Partitura')->find($id);
        return $this->render('PartituraBundle:Default:index.html.twig', array('partitura' => $partitura));
    }

    
    public function agregarPartituraFavoritosAction($id) {
        $em = $this->getDoctrine()->getManager();
        $usuario = $this->get('security.context')->getToken()->getUser();
        $partitura = $em->getRepository('PartituraBundle:Partitura')->find($id);
        
        if (!$partitura) {
            throw $this->createNotFoundException(
                    'No Sheet found for id ' . $id
            );
        }

        $usuario->addPartiturasFavorita($partitura);
        $em->persist($usuario);
        $em->flush();
        $this->get('session')->getFlashBag()->add('info', 'Se agrego a favoritos');
        return new \Symfony\Component\HttpFoundation\Response();
    }

}
